package com.example.demo.java8.functionalinterface;

import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

/**
 *
 * 表达式：
 *
 * person -> person.getAge();
 * 使用双冒号：
 *
 * Person：：getAge
 * 表达式：
 *
 * new HashMap<>()
 * 使用双冒号：
 *
 * HsahMap :: new
 *
 * @author luowj12
 * @since 2021/5/8 17:36
 */
public class AcceptMethod {
    public static void printValur(String str){
        System.out.println("print value : "+str);
    }

    public static void printValur1(Integer str){
        System.out.println("print value : "+str);
    }

    public static void main(String[] args) {
        List<String> al = Arrays.asList("a","b","c","d");
        for (String a: al) {
            AcceptMethod.printValur(a);
        }
        //下面的for each循环和上面的循环是等价的
        al.forEach(x->{
            AcceptMethod.printValur(x);
        });

        al.forEach(AcceptMethod::printValur);

        //下面的方法和上面等价的
        Consumer methodParam = AcceptMethod::printValur; //方法参数
        al.forEach(x -> methodParam.accept(x));//方法执行accept

        Consumer methodParam1 = (x) -> printValur(x);//方法参数
        al.forEach(x -> methodParam.accept(x));//方法执行accept


    }

    private static void printValur(Object o) {

        System.out.println("print value : "+o);
    }


}
